/* eslint-disable prefer-rest-params */
function PropertyDecorator(kind: string): PropertyDecorator {
  console.log("Args", arguments);
  return function (target, key) {
    let v = "";
    Object.defineProperty(target, key, {
      get() {
        return v;
      },
      set(value) {
        v = value;
      },
    });
  };
}

class A {
  @PropertyDecorator("propertyDecorator")
  foo: string;

  constructor(foo: string) {
    this.foo = foo;
  }

  @PropertyDecorator("propertyDecoratorWithDefault")
  bar = 1;
}

export { A };
